This application priority under 35 U.S.C. xc2xa7xc2xa7119 and/or 365 to 198 10 814.1 filed in Federal Republic of Germany on Mar. 12, 1998; the entire content of which is hereby incorporated by reference.
The present invention relates to the field of software update, and in particular to the field of function change in computer based systems with frequent updating due to newly inserted functionality and/or correction of faults.
The evolution of data processing equipment and software technology leads to an increasing demand for methodologies to update installed software.
The usual methodology to achieve this goal is to stop the execution of the installed software, load the new software and then start the new software. Using this approach, no internal data is transferred between the old and the new software. Also, with this method all the established services are lost and the service is completely stopped during the load and start of the new software. Currently, this method is typically used for, e.g., work stations or personal computers.
Another approach to the problem of software update has previously been described in EP-A-0 201 281. However, this solution does not allow any disturbance free data update function since any necessary data and message conversion is performed through the newly installed software itself during startup.
Further, in U.S. Pat. No. 5,155,837 it is proposed to switch the input of data for new services to the new software in a first step. Further, when the service in progress in the old software is completed, the output of data from the services is switched from the old version to the new version. However, this solution may only handle software that handles services with a very short duration since the software according to the old version must first be finished before the new software version is fully operative.
Therefore, In all known approaches there is some kind of disturbance to the operation of a system in case a software update is performed. This disturbance can range from a total system shutdown during hours or possibly days to a short disruption, possibly only with respect to some limited parts of the total system functionality during a few seconds. Conceivably, there may be no disturbance at all, although this is usually not the case in real existing systems like, e.g., telecommunication exchanges.
In view of the above, an object of the invention is to provide an approach to software update that may be performed with minimum disturbance and scaleable down to virtually no disturbance at all.
According to the present invention, this object is achieved through a software processing device of the type with update functionality, comprising memory means subdivided into an executing memory partition means storing a first group of software modules and related data, and a standby memory partition means storing a second group of software modules and related data; update control means adapted to update a state of new software in the standby memory partition means to the state of old software in the executing memory partition means during continuation of execution of the old software; and transfer means for scaleable transfer of data from the executing memory partition means to the standby memory partition means.
Therefore, the system to be upgraded is divided into two logical partitions. These partitions may but must not be implemented using a processor pair. Here, according to the invention, one partition referred to as the executive partition contains the old software that performs ordinary execution. Further, the new software is loaded into the other partition referred to as standby partition without disturbing the execution of the executing software. The software in the standby partition is updated to the same state as the software in the executing partition so that the new software in the standby partition can take over the ordinary program execution without any disturbance. Here, this is performed by copying data from the executing partition. Since the old software and the new software are not identical, data may have to be converted into a representation suitable for the new software. According to the present invention, this is performed parallel with and without disturbing the ordinary software execution continuing in the executing partition.
Also, in case it is impractical to transfer all data of the old software according to the present invention, it is possible to partly transfer data from the old software. This allows to scale the degree of disturbance caused through the software update in the system.
According to a preferred embodiment of the present invention the update control means further comprises a switching means and a state comparison means to switch to the execution of new software as far as the same state is detected for the standby partition and the executing partition by the state comparison means.
Thus, according to the present invention, the switch over from the old, software to the new software requires that the complete. state as represented in all data of the old software is copied and, if necessary, simultaneously converted, to the new software. Thus according to the present invention it is possible to continue execution of the new software with no disturbance at all. Further, in case there exist data between programs in the old software that is not processed at the time of switch over it may be copied and, if necessary, converted before the start of the new software.
According to a preferred embodiment of the present invention to each memory partition there is assigned at least one take over means to carry out default actions in case data related to old software is only partly transferred such that special take over means is activated immediately after switch over.
Here, the special takeover means are activated immediately following the, switch over and perform default actions which do not require a complete input of data. While in this case there may be some disturbance to the extent how much data from the old software is missing according to the present invention it may be scaled according to what is deemed suitable through the incorporation of default actions.
According to yet another preferred embodiment of the present invention the update control means instructs continuation of the old software in the executing partition in case an error situation occurs before switch over or performs a switch back so that the partition with the old software becomes again the executive partition in case an error during execution of the new software occurs after switch over.
Here, in case an error situation occurs before switch over the upgrade of the software is terminated and the ordinary software execution continues with the old software in the executing partition. To the contrary, in case of an error during the execution of the new software after switch over a switch back is performed so that the partition containing the old software becomes the executive partition again. Here, the switch back procedure may include data copy, if necessary convert, in the same way as the switch over procedure. Therefore, the switch back procedure, too, may be performed with limited or no disturbance. Alternatively, it may be performed without any data copy and conversion through running a recovery procedure which typically will lead to some disturbance.
Further, according to the present invention the object outlined above is also achieved with a state copying method for a computation system with at least two logic partitions, comprising the steps updating a state of new software in a standby partition means to the state of old software in an executing partition means while continuing execution of the old software, switching to the execution of new software as far as the same state is achieved for the standby partition and the executing partition.
Therefore, using the method according to the present invention, it is possible to achieve a highly efficient and disturbance free update of software even also if there is old software that handles services with long duration present.
According to a preferred embodiment of the inventive method the updating step further comprises an initialization substep executed parallel to and without disturbance of the old software running in the executing partition.
Therefore, the updating of the new software is eventually followed by initialization routines. Although this may be partly done earlier, e.g., immediately after loading of the new software, part of this initialization may be dependent on data from the old software and therefore may not be performed in advance. The initialization of the new software is executed in parallel with minimum disturbance of the ordinary software execution being continued in the executing partition. As the state of the executing partition is continuously changed the disturbance free-update process according to the present invention must be performed also continuously in parallel with the initialization.
According to yet another preferred embodiment of the inventive method the updating step is executed repeatedly as background process until switch over to the new software to keep track of the changing state in the executing partition. If the complete state as represented and all data of the old software is copied, if necessary converted, to the new software, it is possible to continue execution in the new software with no disturbance at all. In case there are data exchanges between programs in the old software, which have not been processed at the time of the switch over, they also have to be copied and, if necessary, converted.
According to yet another preferred embodiment of the inventive method data related to old software is only partly transferred and a special take over step is executed immediately after switch over to perform default actions not requiring complete input of data. In this case, there may be some disturbance. The extent of this disturbance is dependent on how much of the data from the old software is missing. Advantageously, it can in principle be scaled according to what is deemed suitable.
Further, according to the present invention there is provided a state copying method for a distributed computation environment comprising one main processor and at least one remote processor, composing the steps updating new software into a first/standby memory partition of the remote processor, updating a state of the new software to achieve a match with the state of the main processor while continuing execution of software in the main processor, and switching the execution of software in the remote processor to the new software as soon as a match with the state of the main processor is achieved.
This modified method according to the present invention allows to achieve an update of software modules involving other parts than software modules stored in a specific software processing device.
It also enables the update not only of software but also of hardware. In particular, one could consider switching over the execution of software to another software processing device during the hardware update of a software processing device.
Still further, one could consider a combined update of software and hardware at different software processing devices by first changing the hardware parts and then changing the software parts using the method according to the present invention. Here, not all the components have to be changed at the same time and consequently there is no need for a global restart of the distributed system.